package com.sprouting.metadata.core.model;

import lombok.Data;

/**
 * 字段信息
 *
 * @author ：LX（长沙麓谷）
 * @date 创建时间： 2022/4/22 15:38
 */
@Data
public class ColumnModel {
    /**
     * 字段名
     */
    private String columnName;
    /**
     * 备注信息
     */
    private String remarks;

    /**
     * 是否可为空，false 不可为空，true 可以为空
     */
    private Boolean nullable;
    /**
     * 是否主键 true 是主键
     */
    private Boolean pk;
    /**
     * 列大小,长度
     */
    private Integer length;
    /**
     * 小数位数
     */
    private Integer decimalDigits;
    /**
     * 转换为java属性，带驼峰方式，比如数据库字段为 updTime ，转换为java的 updTime
     */
    private String javaProperty;
    /**
     * 字段是否有分隔符
     */
    private Boolean isColumnNameDelimited;
    /**
     * 数据库字段类型，比如 varchar char, int 等
     * java.sql.Types类型名称(列类型名称)
     */
    private String type;
    /**
     * 默认值
     */
    private String defaultValue;

    /**
     * java数据类型，注意，这里是数字类型，存储的是java.sql中定义的类型
     * 对应的java.sql.Types的SQL类型(列类型ID),存储的是对应的数字
     */
    private Integer jdbcType;
    /**
     * jdbc的类型，比如 VARCHAR, TIMESTAMP,BIGINT 等
     */
    private String jdbcTypeName;
    /**
     * java的全限定名信息
     */
    private FullyQualifiedJavaType fullyQualifiedJavaType;

}
